Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wip/biquads processor #78

Merged
merged 5 commits into from
Mar 18, 2024
Merged

Wip/biquads processor #78

merged 5 commits into from
Mar 18, 2024

Conversation

nathanjhood
Copy link
Owner

@nathanjhood nathanjhood commented Mar 18, 2024

What kind of change does this PR introduce?

Refactor of Audio Processor class which applies to this plugin implementation, not to the DSP library.

  • Useage of array/vector/container for biquad DSP array, enabling multi-band equalization
  • Useage of std::unique_ptr to carefully manage ownership and lifetime of instantiated class objects
  • Useage of returning managed class private members by reference, via function call return statements, specified as public or private according to requirements (most of these things should always be private unless a good, well-understood reason otherwise)
  • Localized references to managed objects within function bodies where possible, by using the function call returns, instead of calling managed objects directly
  • Reduction of (un-managed) calls to *this in the main AudioPluginAudioProcessor class constructor
  • Re-organization of ownership of parameters, process wrapper, APVTS, header inclusion paths, and class declaration logic
  • Project re-organization
  • Additional CMake targets for individual units of the Biquads_Audio_Plugin target, for deeper debugging

What is the current behavior?

  • Some confusing logic re: ownership and lifetime of objects
  • Pointers/references to forward-declared objects has led to some redundancy and potential for mis-direction
  • Lack of iterations over biquad DSP processing blocks causing audio artefacts
  • Project is not fully compatible between CMake and Projucer due to project layout requirements of Projucer

@nathanjhood nathanjhood added enhancement New feature or request CI/CD labels Mar 18, 2024
@nathanjhood nathanjhood self-assigned this Mar 18, 2024
@nathanjhood nathanjhood linked an issue Mar 18, 2024 that may be closed by this pull request
@nathanjhood nathanjhood merged commit 17dadd7 into development Mar 18, 2024
4 checks passed
@nathanjhood nathanjhood deleted the wip/biquads_processor branch March 18, 2024 19:05
@nathanjhood nathanjhood restored the wip/biquads_processor branch March 18, 2024 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI/CD enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactor - Biquads Audio Processor
1 participant